1. Field of the Invention
The present invention relates to client-server computer network architectures, and in particular, to using broadcast and multicast messaging systems to provide clients with electronic mail capabilities.
2. Background of the Invention
Large private computer networks typically consist of a combination of Local Area Networks (LANs) and Wide-Area Networks (WANs). A LAN is a communication network that serves users within a confined geographical area. The components of a LAN consist of servers, workstations, a network operating system, and a communications link. Servers are high-speed machines that hold programs and data shared by all network users. The workstations, or clients, are the users' personal computers, which perform stand-alone processing and access the network servers as required.
A WAN is a group of LANs that are linked to each other over high-speed long distance communications lines or satellites that convey data quickly over long distances. A WAN covers a wide geographic area, such as a state or country, and requires the network facilities of common carriers. A WAN forms the “backbone” of the internal private computer network.
To efficiently share and distribute data among computers, private networks use what is known as client-server technology. In a typical client-server system architecture, one computer acts as the “back end” or server, which performs complex tasks for the clients. Other, smaller computers or terminals act as the “front-end” or clients, which communicate with the user. In this client-server model, the client requests data from the server. A client is defined as a requester of services and a server is defined as the provider of services. A single machine can be both a client and a server depending on the software configuration.
FIG. 1 illustrates a standard client-server system architecture. Server 100 is in communication with clients 102, 104, and 106. In addition, clients 102, 104, and 106 are in communication with each other over a LAN.
To conserve network resources, many private networks use messaging software that supports broadcast or multicast transmissions between the server and the clients. A broadcast transmission delivers a message to all clients and servers within a network. A multicast transmission delivers a message to a specific subset of the clients and servers within a network. As used herein, “broadcast” means to transmit a message from a single network component (e.g., a client) to all network components (e.g., clients and servers) with which the single network component is in communication. Also, as used herein, “multicast” is a form of broadcast, in which a single network component transmits a message to a group of network components, but not necessarily all network components. An example of this type of messaging software is TIB Rendezvous™ by TIBCO™ of Palo Alto, Calif. Another example of suitable messaging software is Transaction Control Protocol/Internet Protocol (TCP/IP), in which datagrams can be used to broadcast or multicast messages. In addition to broadcast and multicast messaging, these types of messaging software also support the traditional point-to-point communications.
In the example of FIG. 1, messaging software runs on server 100. Correspondingly, client computers 102, 104, and 106 run a viewer of the messaging software of server 100. Using the messaging software, server 100 can broadcast a single communication to clients 102, 104, and 106, instead of completing multiple point-to-point communications to each individual client. In addition to a broadcast, server 100 could also multicast a single message to, for example, clients 102 and 104, but not to client 106.
In either broadcast or multicast transmissions, each client is configured to receive all communications and to discern which communications are intended for it, using what is referred to as “subject-based addressing technology.” According to this technology, neither the servers nor the client communicate directly. Rather, the servers and clients communicate using subjects in messages. These subjects are strings of text.
In the example of FIG. 1, server 100 puts a subject on a message to indicate to which client or clients the message is intended. Server 100 then broadcasts the message. Clients 102, 104, and 106 receive the message and check for a particular subject. A client is configured to recognize subjects pertinent to its operation, e.g., if a client is responsible for monitoring and analyzing the rate at which data packets are traveling through network device A, the client would pull data from all messages having the subject “device A traffic rate.” If a client does not recognize the subject, the client simply ignores the message.
In addition to servers, a client can also send a single message to multiple clients and servers. To do so, the full messaging software resides on the client, instead of just the viewer of the messaging software. (The clients and servers use the same underlying protocol, with the application layer determining whether a machine is client or server.) In this situation, a server would also be configured to recognize messages intended for it, using the subject-based addressing technology.
Overall, this broadcast and multicast messaging technology minimizes the computing and communication responsibilities of the server. Despite serving multiple clients, the server need only process data once and send a single message. In addition, this broadcast/multicast technique reduces network bandwidth consumption by limiting the number of transmissions.
This broadcast and multicast messaging technology also simplifies client-server configuration. Ordinarily, the client-server model requires that the server and client be configured to recognize the address of every server with which it will communicate. The broadcast and multicast messaging software enables the server and client to communicate with a group of network components without specifying a recipient.
Broadcast and multicast messaging within a client-server network architecture serves many useful purposes. For example, a server could monitor the performance of a digital wireless packet switching network and report various performance data to the client computers. A network engineer of the digital wireless network service provider would monitor one or more of the client computers and would be responsible for some aspect of the digital wireless network performance. The performance data could include information such as network capacity, regional traffic data, and alarms indicating network areas experiencing overload conditions. Thus, the server would periodically broadcast to all clients a message containing some aspect of network performance. Using the subject-based addressing technology, each client would capture messages containing data intended for the client, and would display the data through its compatible viewer or user interface. After viewing the network performance, a network engineer could then make operational adjustments to improve the performance of the digital wireless network.
In an application such as the one described above, the ability to remotely contact the network engineer is especially helpful. In this way, the network engineer does not have to constantly monitor his client computer for alerts. As an example, if a client computer detects corrupt data, the client computer could notify the network engineer to correct the problem before the system suffers a catastrophic error. Electronic mail to a pager is a logical vehicle for such a notification.
However, providing email capabilities to all client computers of a client-server architecture is a complicated exercise. A typical implementation of the client-server architecture and broadcast/multicast transmission scheme can involve very different types of client computers, all with different software. For example, some clients may be dual purpose, functioning also as servers or “back-office” machines, while others may simply be personal computer workstations providing user access. The clients may also be a part of different departments within a company, using different electronic mail software. For example, one client computer may be networked with computers in a managing department using Lotus Notes™, while another client may be networked with other computers in an information technology department using Microsoft Outlook™. Still other client computers may not have electronic mail capabilities at all. In addition to different company departments, sometimes the clients may not even be a part of the same company, increasing the possibility that the clients use different software.
Having differently configured software on the clients complicates the task of providing email capabilities to each of the clients. For example, in FIG. 1, if the network administrator wishes to give clients 102, 104, and 106 the ability to send email over network 110 through email server 108, then the administrator must configure each client with email software compatible with email server 108. Email server 108 could then forward email over network 110 (e.g., the Internet) to, for example, a wireless paging system that notifies the network engineer. However, if the administrator then decides to change the email configuration of email server 108, then all of the clients must be re-configured.
Alternatively, the network administrator could configure clients 102, 104, and 106 to send email directly through Internet 110 and not through email server 108. However, this configuration complicates network security procedures because the administrator must then monitor the security of each client 102, 104, and 106, instead of the single server 108. In addition, the network administrator must devote considerable time and money to providing individual Internet access and Internet browsing software to a number of individual clients.